<?php
//require 'app/models/bean/produto.php';

class Model{
	protected $db;
	public function __construct(){
		$this->db = new PDO('mysql:host=localhost;dbname=teste_devmake', 'root', '');
	}
	
	public function insert_old($tabela, Array $dados){
		
		
		foreach ( $dados as $inds => $vals){
			$campos[] = $inds;
			$valores[] = $vals;
		}
		
		$campos = implode(', ', $campos);
		$valores = "'".implode("','", $valores)."'";
		
		return $this->db->query("INSERT INTO `{$tabela}` ({$campos}) VALUES ({$valores})");		
	}
	
	
	public function save( $obj ) {
		$table = $obj->getEntity();
		
		$attributes = $obj->getAttributeNames();
		$fields = implode(', ', $attributes);
		
		$values = $obj->getAttributeValues();
		$values = "'".implode("', '", $values)."'";
				
		//exit; 
		
		return $this->db->query("INSERT INTO `{$table}` ({$fields}) VALUES ({$values})");
		
		/*try{
			$stmt = $this->db->prepare("INSERT INTO produto (nome, descricao) VALUES (?, ?)");
			$stmt->bindValue(1, $produto->getName() );
			$stmt->bindValue(2, $produto->getDescription() );
			$stmt->execute();
			// fecho a conexão
			$this->db = null;
			// caso ocorra um erro, retorna o erro;
		}catch ( PDOException $ex ){
			echo "Erro: ".$ex->getMessage();
		}*/
	}
	
	public function read( $table, $where = null ){
		//$sql = "select * from tabela where id = 1";
		$where = ($where != null ? "WHERE {$where}" : "");
		
		$q = $this->db->query("SELECT * FROM `{$table}` {$where}");
		$q->setFetchMode(PDO::FETCH_ASSOC);
		return $q->fetchAll();
	}
	
	public function update( $tabela, Array $dados, $where){		
		//$sql = "update tabela set nome = 'novo nome' where ";
				
		foreach ( $dados as $ind => $valor ){
			$campos[] = "{$ind} = '{$val}'";
		}
		//$campos = implode
		
	}
	
}


